草庐IT

Linux IO重定向和管道

全部标签

c++ - 通过命名管道发送 DWORD

我试图通过命名管道发送一个DWORD数组,但我一直在试图弄清楚如何发送单个DWORD。这是我到目前为止所得到的://CreateapipetosenddataHANDLEpipe=CreateNamedPipe(L"\\\\.\\pipe\\my_pipe",PIPE_ACCESS_OUTBOUND,PIPE_TYPE_BYTE,1,0,0,0,NULL);/*Waitingfortheothersidetoconnectandsomeerrorhandlingcutout*///HereItrytosendtheDWORDDWORDmsg=0xDEADBEEF;DWORDnumByt

c++:让用户进程写入 LOCAL_SYSTEM 命名管道 - 自定义安全描述符

我有一个作为LocalSystem运行的服务,它在登录用户的session中创建一个进程。然后该服务创建一个命名管道,客户端连接到该管道进行读写。根据https://msdn.microsoft.com/en-us/library/aa365600%28v=vs.85%29.aspx客户端只能从管道中读取(它不是Admin,不是Creator,也不是LocalSystem)。我创建了一个安全描述符来授予用户读写访问权限。但这没有用。所以我尝试为Everyone-Group提供读写访问权限。但这也行不通。我的客户端返回的错误代码始终是ACCESS_DENIED(5)。我很高兴知道我做错了

windows - 在重定向文件 (>output.txt) 中显示带有重音符号的字符

例子modecon:cp>%tmp%\output.tmpnotepad%tmp%\output.tmp显示:Statutdup‚riph‚riqueCON:---------------------------Pagedecodesÿ:850代替:StatutdupériphériqueCON:---------------------------Pagedecodes :850我还尝试了chcp65001和1252你知道解决办法吗?编辑:我使用truetypeLucida字体,即使我键入%tmp%\output.tmp它也会在控制台中显示正确的字符,但在任何文本编辑器中都不会。我也

python - 如何检测到 stdio 被重定向到 nul?

我正在开发一个包来解决在标准Windows控制台环境中运行的Python中Unicode的几个问题:https://github.com/Drekin/win-unicode-console.关键操作是在需要时替换标准流对象。为此,我需要检测标准流是否被重定向。Python方法isatty()工作正常,但有一个异常(exception):如果流被重定向到nul,则isatty()返回True.我的问题是如何检测Windows句柄是指向控制台还是指向nul?是否有相应的WinAPI函数? 最佳答案 C运行时的_isatty对于访问字符

windows - 如何使 Windows START 命令通过管道接受标准输入并将其传递给它调用的命令?

查看此脚本保存在名为foo.cmd的文件中。@echooffmore+5现在可以以这种方式使用此脚本。dirC:\Windows|foo它从第6行开始显示输出,一次显示一个屏幕(即作为分页器)。在我退出more之前,当前命令提示符一直处于阻塞状态。现在我修改脚本如下,让更多的输出显示在一个单独的窗口中。@echooffstart""more+5现在,如果我运行以下命令,一个新窗口会正常启动,但不会显示任何输出。dirC:\Windows|foostart命令似乎没有接收到我通过管道传输到foo.cmd的dir命令的输出。我该怎么做才能确保通过管道传输到start命令标准输入的任何数据都

c# - 命名管道创建时所有实例都忙异常

我有一个Windows服务,它通过命名管道与一个图形用户界面应用程序通信。因此,我有一个正在运行的线程正在等待应用程序连接,如果我这样做一次,它运行良好。但是,如果线程正在创建命名管道流服务器的新实例,则已经建立的连接将中断,并且我会收到所有实例繁忙的异常。抛出异常的代码片段是这样的:classPipeStreamWriter:TextWriter{staticNamedPipeServerStream_output=null;staticStreamWriter_writer=null;staticThreadmyThread=null;publicPipeStreamWriter(

c# - 数据流管道中的全局每 block 错误处理

我正在设计一个由多个block组成的长期运行的数据流管道。项目被馈送到管道的输入block,最终通过它,并在最后显示在UI中(出于对用户的礼貌——管道的真正工作是将处理结果保存到磁盘)。管道block内的lambda函数可能会抛出异常,原因有多种(输入错误、网络故障、计算错误等)。在这种情况下,我不想让整个管道出错,而是想踢出有问题的项目,并将其显示在UI中的“错误”下。最好的方法是什么?我知道我可以将每个lambda函数包装在一个try/catch中:varerrorLoggingBlock=newActionBlock>(...)varworkerBlock=newTransfor

c# - 如何使用 post 变量进行重定向

我必须执行重定向并将变量a和p的值发送到另一个页面。我不能像这样使用GET方法:http://urlpage?a=1&p=2。我必须用post方法发送它们。如何在不使用C#表单的情况下发送它们? 最佳答案 这个类包装表单。有点hacky,但它有效。只需将post值添加到类中并调用post方法。publicclassRemotePost{privateDictionaryInputs=newDictionary();publicstringUrl="";publicstringMethod="post";publicstringFor

c# - 从 MVC3 中的查询字符串中删除一个值并重定向到生成的 URL

我正在处理一个看似简单的问题:在我的授权过滤器中,如果不满足其中一个条件,我会检查一些事情,我需要从查询字符串中删除某些值并将用户重定向到结果URL。但是,这给我带来了比我想要的更多的问题。它看起来像这样:publicvoidOnAuthorization(AuthorizationContextfilterContext){if(!SomeCondition()){RedirectToCleanUrl(filterContext);}}在我的RedirectToCleanUrl中,我正在剥离查询字符串并尝试将它们重定向到新的url。它看起来像这样:privatevoidRedirec

c# - Mediatr 3.0 使用管道行为进行身份验证

着眼于使用新的Mediatr3.0功能管道行为进行身份验证/授权。您通常会根据消息或处理程序进行身份验证吗?我问的原因是我对处理程序进行了授权(与MVC中的Controller相同),但行为似乎不了解处理程序,所以我不确定这是否可能/合适。我可以为每条消息添加一个IAuthorisationRequired标记接口(interface),但是如果消息是一个通知/事件并且有多个处理程序,那么也许应该运行一些处理程序而不是其他处理程序。在执行实际工作的处理程序代码上检查身份验证确实感觉更好。希望能够在处理程序上放置一个[Authorize]属性,并使用一个行为来检查它(我目前正是这样做的,